package javamusic.Servlet.Reserva;

import java.io.IOException;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Locale;

import javax.servlet.RequestDispatcher;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import javamusic.modelo.Cliente;
import javamusic.modelo.Reserva;
import javamusic.modelo.Sala;
import javamusic.DAO.ReservaDAO;
import javamusic.negocio.GestionReserva;
import javamusic.excepcion.DAOExcepcion;


/**
 * Servlet implementation class ServletProductoInsertar
 */
@WebServlet("/ServletReservaProcesar")
public class ServletReservaProcesar extends HttpServlet {
	private static final long serialVersionUID = 1L;

    /**
     * Default constructor. 
     */
    public ServletReservaProcesar() {
        // TODO Auto-generated constructor stub
    }

	/**
	 * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
	 */
	protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		
		try{
			
			String accion = request.getParameter("accion");
			
			GestionReserva negocio = new GestionReserva();  
			
			int idReserva = Integer.parseInt(request.getParameter("idReserva"));
			
			if(accion != null && accion.equals("E")){
				
				int filasAfectadas = negocio.eliminar(idReserva);
				
				RequestDispatcher rd = request.getRequestDispatcher("frmBusquedaReserva.jsp");
				rd.forward(request, response);
				
			}else{
				Reserva _oReserva = negocio.Obtener(idReserva);
				
				request.setAttribute("Reserva_Edicion", _oReserva);
				
				RequestDispatcher rd = request.getRequestDispatcher("frmRegistrarReserva.jsp?idReserva=" + idReserva);
				rd.forward(request, response);
			}
			
			
			
			
			
			
		} catch (DAOExcepcion e) {
			System.out.println(e.getMessage());
		}
		
	}

	/**
	 * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
	 */
	protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		// TODO Auto-generated method stub 
		String  accion = request.getParameter("accion");
		String reserva = request.getParameter("reserva");
		Integer idSala = Integer.parseInt(request.getParameter("sala"));
		Integer idCliente = Integer.parseInt(request.getParameter("cliente"));
		
		String  descripcion = request.getParameter("descripcion");	
		String  fecha = request.getParameter("fecha");	
		
		SimpleDateFormat format = new SimpleDateFormat("dd/MM/yyyy",new Locale("es","ES"));
		
		
		
		GestionReserva negocio = new GestionReserva();  
		
		try {
			
			Date fechaReserva = format.parse(fecha);
			
			if(accion.equals("R")){
				
				Reserva _oReserva = new Reserva();
				_oReserva.setDescripcion(descripcion);
				_oReserva.setFecha(new java.sql.Date(fechaReserva.getTime()));
				_oReserva.setElog(1);
				Sala _oSala = new Sala(); 
				Cliente _oCliente = new Cliente();
				
				_oSala.setIdsala(idSala);
				_oCliente.setIdCliente(idCliente);
				_oReserva.setSala(_oSala);
				_oReserva.setCliente(_oCliente);
				
				
				
				Reserva result = negocio.insertar(_oReserva);
				
				RequestDispatcher rd = request.getRequestDispatcher("frmBusquedaReserva.jsp");
				rd.forward(request, response);
				
				
			
			}else if(accion.equals("M")){
				
				int idReserva = 0;
				
				if(reserva != null && reserva !="") idReserva = Integer.parseInt(reserva);
				
				System.out.println("Entro a modificar");
				System.out.println("IdReserva: " + idReserva);
				
				Reserva _oReserva = new Reserva();
				
				_oReserva.setIdReserva(idReserva);
				_oReserva.setDescripcion(descripcion);
				_oReserva.setFecha(new java.sql.Date(fechaReserva.getTime()));
				
				Sala _oSala = new Sala(); 
				Cliente _oCliente = new Cliente();
				
				_oSala.setIdsala(idSala);
				_oCliente.setIdCliente(idCliente);
				_oReserva.setSala(_oSala);
				_oReserva.setCliente(_oCliente);
				
				
				negocio.actualizar(_oReserva);
				RequestDispatcher rd = request.getRequestDispatcher("frmBusquedaReserva.jsp");
				rd.forward(request, response);
			}else if(accion.equals("E")){
				System.out.println("entro");
			}
			
		} catch (ParseException | DAOExcepcion e) {
			System.out.println(e.getMessage());
		}
			// TODO: handle exception
		}
	

}
